import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Class Nube2 que hereda de Nube es para representar las nubes que relampagean
 * @author (Programación Orientada a Objetos- Adrián Cerda Cerda)
 * @version (Mayo 2012)
 */
public class Nube2 extends Nube
{
    private int cont=0;//Contador para que cada nube relampage cierto y diferente tiempo
    private int num;//representa la nube que se esta ejecutando
    /**
     * Nube2 realiza sus acciones como son sus movimientos y permanecer 
     * en la posición que le corresponde dentro del Mundo
     * así como su actuar que va hacer relampagear
     */
    
    public void act() 
    {
        // Add your action code here.
        super.mover();
        super.posicion();
        actuar();
    }    
    /**
     * Constructor class Nube2
     * @param la imagen que se va a dibujar
     */
    public Nube2(int n)
    {
        num=n;
        switch(num)
        {
            case 1: 
                    setImage("nube61.gif");
                    break;
            case 2: 
                    setImage("CL19.png");
                    break;
            case 3:
                    setImage("cloud.png");
                    break;
            case 4:
                     setImage("zc01.png");
                    break;
            case 5:
                    setImage("gif.gif");
                    break;
          
        }
    }
    /**
     * Nube2 siempre va arelampagear dependiendo de la nube a que se este referiendo
     */
    public void actuar()
    {
        switch(num)
        {
            case 1: 
                    relampagear(100);
                    break;
            case 2: 
                    relampagear(50);
                    break;
            case 3:
                    relampagear(80);
                    break;
            case 4:
                     relampagear(30);
                    break;
            case 5:

                    relampagear(120);
                    break;
          
        }
    }
    /**
     * Cada nube va arrelampagear en un cierto tiempo
     * @param tiempo en el que va ha relampagear
     */
    public void relampagear(int tiempo)
    {
         
       
                   cont= cont+1;
                   if(cont>tiempo)
                   {
                       int x= getX();
                       int y= getY();
                       PlaneWorld w= (PlaneWorld) super.getWorld();
                       if(this!=null)
                        w.removeObject(this);
                        Relampago relam= new Relampago();
                        w.addObject(relam, x+
                        2, y+2);
                        Nube2 nub= new Nube2(num);
                        w.addObject(nub, x, y);
                        cont=0;                        
                  }
        }
}

